<!DOCTYPE html>
<html>
  <head>
    <link rel="canonical" href="http://blog.csdn.net/csdnsevenn/article/details/78904928"/> 
    <script type="text/javascript">
        var username = "csdnsevenn";
        var _blogger = username;
        var blog_address = "http://blog.csdn.net/csdnsevenn";
        var static_host = "http://csdnimg.cn/release/phoenix/";
        var currentUserName = ""; 
        var fileName = '78904928';
        var commentscount = 0;
        var islock = false
        window.quickReplyflag = true;
        var totalFloor = 0;
        var isBole = false;
        var isDigg = false;
        var isExpert=false;
        var isAdm = false;
    </script>
    <meta http-equiv="content-type" content="text/html; charset=utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=Edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=no">
    <meta name="apple-mobile-web-app-status-bar-style" content="black">
    <script src="http://c.csdnimg.cn/public/common/libs/jquery/jquery-1.9.1.min.js" type="text/javascript"></script>
    <link rel="stylesheet" href="http://c.csdnimg.cn/public/common/libs/bootstrap/css/bootstrap.min.css">
    <link rel="stylesheet" href="http://c.csdnimg.cn/public/static/css/avatar.css">
    <link rel="stylesheet" href="http://csdnimg.cn/release/phoenix/production/main-f7fb2ae533.css">
    <link rel="stylesheet" href="http://c.csdnimg.cn/public/common/toolbar/content_toolbar_css/content_toolbar.css">

    <script src="http://csdnimg.cn/rabbit/exposure-click/main-1.0.5.js"></script>
    <script type="text/javascript" src="http://csdnimg.cn/pubfooter/js/tracking-1.0.2.js" charset="utf-8"></script>
    <script type="text/javascript" src="http://csdnimg.cn/release/phoenix/production/main-9512850059.js"></script>

    <script src="http://dup.baidustatic.com/js/ds.js"></script>
    <script type="text/javascript">
        // Traffic Stats of the entire Web site By baidu
        var _hmt = _hmt || [];
        (function() {
            var hm = document.createElement("script");
            hm.src = "https://hm.baidu.com/hm.js?6bcd52f51e9b3dce32bec4a3997715ac";
            var s = document.getElementsByTagName("script")[0];
            s.parentNode.insertBefore(hm, s);
        })();
        // Traffic Stats of the entire Web site By baidu end
    </script>
    <meta name="description" content="点击上方“程序人生”，选择“置顶公众号”第一时间关注程序猿（媛）身边的故事每个程序员、或者说每个工作者都应该有自己的职业规划，如果你不是富二代，不是官二代，也没有职业规划，希望你可以思考一下自己的将来。今天小编给大家分享的是一篇来自阿里Java工程师对3年工作经验程序员的职业建议，希望对你有启发。  　　程序员的三个阶段 　　第一阶段-——三年 我认为三年对于程序员来说是第一个门槛，这个阶段将会淘" />
    <meta name="keywords" content="" />
    <meta http-equiv="Cache-Control" content="no-siteapp" /><link rel="alternate" media="handheld" href="#" />
    <meta name="shenma-site-verification" content="5a59773ab8077d4a62bf469ab966a63b_1497598848">
    <title>阿里Java工程师分享3年工作经验的程序员应该具备的技能 - CSDN博客</title>
    <link href="http://csdnimg.cn/public/favicon.ico" rel="SHORTCUT ICON">
</head>
<body>
<script id="toolbar-tpl-scriptId" prod="download" skin="black" src="http://c.csdnimg.cn/public/common/toolbar/js/content_toolbar.js" type="text/javascript" domain="http://blog.csdn.net/"></script>
<div class="container clearfix">
  <main>
    <article>
        <h1 class="csdn_top">阿里Java工程师分享3年工作经验的程序员应该具备的技能</h1>
        <div class="article_bar clearfix">
            <div class="artical_tag">
                <span class="original">
                转载                </span>
                <span class="time">2017年12月25日 00:00:00</span>
            </div>

            <ul class="article_tags clearfix csdn-tracking-statistics tracking-click" data-mod="popu_377" >
                <li class="tit">标签：</li>

<!--          [startarticletags]-->
                <!--          [endarticletags]-->
            </ul>
            <ul class="right_bar">
                <li><button class="btn-noborder"><i class="icon iconfont icon-read"></i><span class="txt">220</span></button></li>
                <li class="edit">
                    <a class="btn-noborder" href="" >
                        <i class="icon iconfont icon-bianji"></i><span class="txt">编辑</span>
                    </a>
                </li>
                <li class="del">
                    <a class="btn-noborder" onclick="javascript:deleteArticle(fileName);return false;">
                        <i class="icon iconfont icon-shanchu"></i><span class="txt">删除</span>
                    </a>
                </li>
            </ul>
        </div>
        <div id="article_content" class="article_content csdn-tracking-statistics tracking-click" data-mod="popu_519" data-dsm="post">
                        
    <div class="rich_media_content" id="js_content">
                    

                    

                    
                    
                    <p style="text-align:center;letter-spacing:.5px;"><span style="color:rgb(136,136,136);font-size:14px;background-color:rgb(255,255,255);text-align:center;">点击上方“</span><span style="font-size:14px;background-color:rgb(255,255,255);text-align:center;color:rgb(61,170,214);">程序人生</span><span style="color:rgb(136,136,136);font-size:14px;background-color:rgb(255,255,255);text-align:center;">”，选择“置顶公众号”</span><span style="font-size:15px;"></span></p><p style="font-size:16px;white-space:normal;color:rgb(62,62,62);background-color:rgb(255,255,255);text-align:center;letter-spacing:.5px;"><span style="font-size:14px;color:rgb(136,136,136);">第一时间关注程序猿（媛）身边的故事</span></p><p><br /></p><p style="text-align:justify;letter-spacing:.5px;"><span style="font-size:15px;">每个程序员、或者说每个工作者都应该有自己的职业规划，如果你不是富二代，不是官二代，也没有职业规划，希望你可以思考一下自己的将来。今天小编给大家分享的是一篇来自阿里Java工程师对3年工作经验程序员的职业建议，希望对你有启发。</span></p><p style="white-space:normal;text-align:justify;letter-spacing:.5px;"><span style="font-size:15px;"> </span></p><p style="white-space:normal;text-align:justify;letter-spacing:.5px;"><img class="img-responsive center-block" style="margin-right:auto;margin-left:auto;list-style:none;border:0px;vertical-align:middle;display:block;visibility:visible !important;" src="http://ss.csdn.net/p?http://mmbiz.qpic.cn/mmbiz_jpg/1hReHaqafafh6AIMvqc9aib8nY5sBeDNzTQbxxibH3gZ7073asKjibSYXCPaiaaUNljyRDPiasBFGBMibQUBMJnf8kzQ/640?wx_fmt=jpeg&amp;wxfrom=5&amp;wx_lazy=1" alt="640?wx_fmt=jpeg&amp;wxfrom=5&amp;wx_lazy=1" /><br style="list-style:none;" /><span style="font-size:15px;"> </span></p><p style="white-space:normal;text-align:justify;letter-spacing:.5px;"><span style="font-size:15px;"><strong style="list-style:none;">　　程序员的三个阶段</strong></span></p><p style="white-space:normal;text-align:justify;letter-spacing:.5px;"><span style="font-size:15px;"> </span></p><p style="white-space:normal;text-align:justify;letter-spacing:.5px;"><span style="list-style:none;color:rgb(0,128,128);font-size:15px;">　　第一阶段-——三年</span></p><p style="white-space:normal;text-align:justify;letter-spacing:.5px;"><span style="font-size:15px;"> </span></p><p style="white-space:normal;text-align:justify;letter-spacing:.5px;"><span style="font-size:15px;">我认为三年对于程序员来说是第一个门槛，这个阶段将会淘汰掉一批不适合写代码的人。这一阶段，我们走出校园，迈入社会，成为一名程序员，正式从书本上的内容迈向真正的企业级开发。我们知道如何团队协作、如何使用项目管理工具、项目版本如何控制、我们写的代码如何测试如何在线上运行等等，积累了一定的开发经验，也对代码有了一定深入的认识，是一个比较纯粹的Coder的阶段。</span></p><p style="white-space:normal;text-align:justify;letter-spacing:.5px;"><span style="font-size:15px;"> </span></p><p style="white-space:normal;text-align:justify;letter-spacing:.5px;"><span style="list-style:none;color:rgb(0,128,128);font-size:15px;">　　第二阶段——五年</span></p><p style="white-space:normal;text-align:justify;letter-spacing:.5px;"><span style="font-size:15px;"> </span></p><p style="white-space:normal;text-align:justify;letter-spacing:.5px;"><span style="font-size:15px;">五年又是区分程序员的第二个门槛。有些人在三年里，除了完成工作，在空余时间基本不会研究别的东西， 热衷于研究各种技术实现细节、看了N多好书、写一些博客、在Github上分享技术，这些人在五年后必然具备在技术上独当一面的能力并且清楚自己未来的发展方向，从一个Coder逐步走向系统分析师或是架构师，成为项目组中不可或缺的人物。</span></p><p style="white-space:normal;text-align:justify;letter-spacing:.5px;"><span style="font-size:15px;"> </span></p><p style="white-space:normal;text-align:justify;letter-spacing:.5px;"><span style="list-style:none;color:rgb(0,128,128);font-size:15px;">　　第三阶段——十年</span></p><p style="white-space:normal;text-align:justify;letter-spacing:.5px;"><span style="font-size:15px;"> </span></p><p style="white-space:normal;text-align:justify;letter-spacing:.5px;"><span style="font-size:15px;">十年又是另一个门槛了，转行或是继续做一名程序员就在这个节点上。如果在前几年就抱定不转行的思路并且为之努力的话，那么在十年的这个节点上，有些人必然成长为一名对行业有着深入认识、对技术有着深入认识、能从零开始对一个产品进行分析的程序员，这样的人在公司基本担任的都是CTO、技术专家、首席架构师等最关键的职位，这对于自己绝对是一件荣耀的事，当然老板在经济上也绝不会亏待你。</span></p><p style="white-space:normal;text-align:justify;letter-spacing:.5px;"><span style="font-size:15px;"> </span></p><p style="white-space:normal;text-align:justify;letter-spacing:.5px;"><span style="font-size:15px;">总结一下，我认为，随着你工作年限的增长、对生活对生命认识的深入，应当不断思考三个问题：</span></p><p style="white-space:normal;text-align:justify;letter-spacing:.5px;"><span style="font-size:15px;"> </span></p><p style="white-space:normal;text-align:justify;letter-spacing:.5px;"><strong><span style="font-size:15px;">　　我到底适不适合当一名程序员？</span></strong></p><p style="white-space:normal;text-align:justify;letter-spacing:.5px;"><strong><span style="font-size:15px;"> </span></strong></p><p style="white-space:normal;text-align:justify;letter-spacing:.5px;"><strong><span style="font-size:15px;">　　我到底应不应该一辈子以程序员为职业？</span></strong></p><p style="white-space:normal;text-align:justify;letter-spacing:.5px;"><strong><span style="font-size:15px;"> </span></strong></p><p style="white-space:normal;text-align:justify;letter-spacing:.5px;"><strong><span style="font-size:15px;">　　我对编程到底持有的是一种什么样的态度，是够用就好呢还是不断研究？</span></strong></p><p style="white-space:normal;text-align:justify;letter-spacing:.5px;"><span style="font-size:15px;"> </span></p><p style="white-space:normal;text-align:justify;letter-spacing:.5px;"><span style="font-size:15px;">最终，明确自己的职业规划，对自己的规划负责并为之努力。</span></p><p style="white-space:normal;text-align:justify;letter-spacing:.5px;"><span style="font-size:15px;"></span></p><img style="vertical-align:middle;" width="100%" class="img_loading" src="http://ss.csdn.net/p?http://mmbiz.qpic.cn/mmbiz_jpg/1hReHaqafacIcL0pL8LibTJZ5AiaJHMiaLQGdyM5m0ZRftLeRQs81arkLYN8qbibktFmhIvRo5g2ZuWOWdF8Hq9z1w/0?wx_fmt=jpeg" alt="0?wx_fmt=jpeg" /><p style="white-space:normal;text-align:justify;letter-spacing:.5px;"><br /></p><p style="white-space:normal;text-align:justify;letter-spacing:.5px;"><span style="font-size:15px;">　　<strong>关于专业技能</strong></span></p><p style="text-align:center;"><img class="img_loading" src="http://ss.csdn.net/p?https://mmbiz.qpic.cn/mmbiz_jpg/1hReHaqafacIcL0pL8LibTJZ5AiaJHMiaLQ054cnt2LoeQpmqrUBgavicHKPJRprQWFTFbOiabnUSqStDwnvGibnh6jw/0?wx_fmt=jpeg" alt="0?wx_fmt=jpeg" /></p><p style="white-space:normal;text-align:justify;letter-spacing:.5px;"><span style="font-size:15px;">一名3年工作经验的Java程序员应该具备的技能，这可能是Java程序员们比较关心的内容。我这里要说明一下，以下列举的内容不是都要会的东西----但是如果你掌握得越多，最终能得到的评价、拿到的薪水势必也越高。</span></p><p style="white-space:normal;text-align:justify;letter-spacing:.5px;"><span style="font-size:15px;"> </span></p><p style="white-space:normal;text-align:justify;letter-spacing:.5px;"><span style="font-size:15px;"><strong style="list-style:none;">　　1、基本语法</strong></span></p><p style="white-space:normal;text-align:justify;letter-spacing:.5px;"><span style="font-size:15px;"> </span></p><p style="white-space:normal;text-align:justify;letter-spacing:.5px;"><span style="font-size:15px;">这包括static、final、transient等关键字的作用，foreach循环的原理等等。今天面试我问你static关键字有哪些作用，如果你答出static修饰变量、修饰方法我会认为你合格，答出静态块，我会认为你不错，答出静态内部类我会认为你很好，答出静态导包我会对你很满意，因为能看出你非常热衷研究技术。</span></p><p style="white-space:normal;text-align:justify;letter-spacing:.5px;"><span style="font-size:15px;"> </span></p><p style="white-space:normal;text-align:justify;letter-spacing:.5px;"><span style="font-size:15px;">让我印象深刻的一次面试经历，面试官直接问到了我volatile关键字的底层实现原理（顺便插一句，面试和被面试本身就是相对的，面试官能问这个问题同时也让面试者感觉到面试官也是一个喜爱研究技术的人，增加了面试者对公司的好感，我最终选择的就是问了这个问题的公司），不要觉得这太吹毛求疵了----越简单的问题越能看出一个人的水平，别人对你技术的考量绝大多数都是以深度优先、广度次之为标准的，切记。</span></p><p style="white-space:normal;text-align:justify;letter-spacing:.5px;"><span style="font-size:15px;"> </span></p><p style="white-space:normal;text-align:justify;letter-spacing:.5px;"><span style="font-size:15px;"><strong style="list-style:none;">　　2、集合</strong></span></p><p style="white-space:normal;text-align:justify;letter-spacing:.5px;"><span style="font-size:15px;"> </span></p><p style="white-space:normal;text-align:justify;letter-spacing:.5px;"><span style="font-size:15px;">非常重要，也是必问的内容。基本上就是List、Map、Set，问的是各种实现类的底层实现原理，实现类的优缺点。</span></p><p style="white-space:normal;text-align:justify;letter-spacing:.5px;"><span style="font-size:15px;"> </span></p><p style="white-space:normal;text-align:justify;letter-spacing:.5px;"><span style="font-size:15px;">集合要掌握的是ArrayList、LinkedList、Hashtable、HashMap、ConcurrentHashMap、HashSet的实现原理，能流利作答，当然能掌握CopyOnWrite容器和Queue是再好不过的了。另外多说一句，ConcurrentHashMap的问题在面试中问得特别多，大概是因为这个类可以衍生出非常多的问题，关于ConcurrentHashMap，我提供三点回答或者是研究方向：</span></p><p style="white-space:normal;text-align:justify;letter-spacing:.5px;"><span style="font-size:15px;"> </span></p><p style="white-space:normal;text-align:justify;letter-spacing:.5px;"><span style="font-size:15px;">　　ConcurrentHashMap的锁分段技术</span></p><p style="white-space:normal;text-align:justify;letter-spacing:.5px;"><span style="font-size:15px;"> </span></p><p style="white-space:normal;text-align:justify;letter-spacing:.5px;"><span style="font-size:15px;">　　ConcurrentHashMap的读是否要加锁，为什么</span></p><p style="white-space:normal;text-align:justify;letter-spacing:.5px;"><span style="font-size:15px;"> </span></p><p style="white-space:normal;text-align:justify;letter-spacing:.5px;"><span style="font-size:15px;">　　ConcurrentHashMap的迭代器是强一致性的迭代器还是弱一致性的迭代器</span></p><p style="white-space:normal;text-align:justify;letter-spacing:.5px;"><span style="font-size:15px;"> </span></p><p style="white-space:normal;text-align:justify;letter-spacing:.5px;"><span style="font-size:15px;"><strong style="list-style:none;">　　3、设计模式</strong></span></p><p style="white-space:normal;text-align:justify;letter-spacing:.5px;"><span style="font-size:15px;"> </span></p><p style="white-space:normal;text-align:justify;letter-spacing:.5px;"><span style="font-size:15px;">本来以为蛮重要的一块内容，结果只在阿里巴巴B2B事业部面试的时候被问了一次，当时问的是装饰器模式。</span></p><p style="white-space:normal;text-align:justify;letter-spacing:.5px;"><span style="font-size:15px;"> </span></p><p style="white-space:normal;text-align:justify;letter-spacing:.5px;"><span style="font-size:15px;">当然咱们不能这么功利，为了面试而学习，设计模式在工作中还是非常重要、非常有用的，23种设计模式中重点研究常用的十来种就可以了，面试中关于设计模式的问答主要是三个方向：</span></p><p style="white-space:normal;text-align:justify;letter-spacing:.5px;"><span style="font-size:15px;"> </span></p><p style="white-space:normal;text-align:justify;letter-spacing:.5px;"><span style="font-size:15px;">　　你的项目中用到了哪些设计模式，如何使用</span></p><p style="white-space:normal;text-align:justify;letter-spacing:.5px;"><span style="font-size:15px;"> </span></p><p style="white-space:normal;text-align:justify;letter-spacing:.5px;"><span style="font-size:15px;">　　知道常用设计模式的优缺点</span></p><p style="white-space:normal;text-align:justify;letter-spacing:.5px;"><span style="font-size:15px;"> </span></p><p style="white-space:normal;text-align:justify;letter-spacing:.5px;"><span style="font-size:15px;">　　能画出常用设计模式的UML图</span></p><p style="white-space:normal;text-align:justify;letter-spacing:.5px;"><span style="font-size:15px;"> </span></p><p style="white-space:normal;text-align:justify;letter-spacing:.5px;"><span style="font-size:15px;"><strong style="list-style:none;">　　4、多线程</strong></span></p><p style="white-space:normal;text-align:justify;letter-spacing:.5px;"><span style="font-size:15px;"> </span></p><p style="white-space:normal;text-align:justify;letter-spacing:.5px;"><span style="font-size:15px;">这也是必问的一块了。因为三年工作经验，所以基本上不会再问你怎么实现多线程了，会问得深入一些比如说Thread和Runnable的区别和联系、多次start一个线程会怎么样、线程有哪些状态。当然这只是最基本的，出乎意料地，几次面试几乎都被同时问到了一个问题，问法不尽相同，总结起来是这么一个意思：</span></p><p style="white-space:normal;text-align:justify;letter-spacing:.5px;"><span style="font-size:15px;"> </span></p><p style="white-space:normal;text-align:justify;letter-spacing:.5px;"><span style="font-size:15px;">假如有Thread1、Thread2、Thread3、Thread4四条线程分别统计C、D、E、F四个盘的大小，所有线程都统计完毕交给Thread5线程去做汇总，应当如何实现？</span></p><p style="white-space:normal;text-align:justify;letter-spacing:.5px;"><span style="font-size:15px;"> </span></p><p style="white-space:normal;text-align:justify;letter-spacing:.5px;"><span style="font-size:15px;">你对这个问题是否有答案呢？不难，java.util.concurrent下就有现成的类可以使用。</span></p><p style="white-space:normal;text-align:justify;letter-spacing:.5px;"><span style="font-size:15px;"> </span></p><p style="white-space:normal;text-align:justify;letter-spacing:.5px;"><span style="font-size:15px;">另外，线程池也是比较常问的一块，常用的线程池有几种？这几种线程池之间有什么区别和联系？线程池的实现原理是怎么样的？实际一些的，会给你一些具体的场景，让你回答这种场景该使用什么样的线程池比较合适。</span></p><p style="white-space:normal;text-align:justify;letter-spacing:.5px;"><span style="font-size:15px;"> </span></p><p style="white-space:normal;text-align:justify;letter-spacing:.5px;"><span style="font-size:15px;">最后，虽然这次面试问得不多，但是多线程同步、锁这块也是重点。synchronized和ReentrantLock的区别、synchronized锁普通方法和锁静态方法、死锁的原理及排查方法等等...</span></p><p style="white-space:normal;text-align:justify;letter-spacing:.5px;"><span style="font-size:15px;"> </span></p><p style="white-space:normal;text-align:justify;letter-spacing:.5px;"><span style="font-size:15px;"><strong style="list-style:none;">　　5、 IO</strong></span></p><p style="white-space:normal;text-align:justify;letter-spacing:.5px;"><span style="font-size:15px;"> </span></p><p style="white-space:normal;text-align:justify;letter-spacing:.5px;"><span style="font-size:15px;">IO分为File IO和Socket IO，File IO基本上是不会问的，问也问不出什么来，平时会用就好了，另外记得File IO都是阻塞IO。</span></p><p style="white-space:normal;text-align:justify;letter-spacing:.5px;"><span style="font-size:15px;"> </span></p><p style="white-space:normal;text-align:justify;letter-spacing:.5px;"><span style="font-size:15px;">Socket IO是比较重要的一块，要搞懂的是阻塞/非阻塞的区别、同步/异步的区别，借此理解阻塞IO、非阻塞IO、多路复用IO、异步IO这四种IO模型，Socket IO如何和这四种模型相关联。这是基本一些的，深入一些的话，就会问NIO的原理、NIO属于哪种IO模型、NIO的三大组成等等，这有些难，当时我也是研究了很久才搞懂NIO。</span></p><p style="white-space:normal;text-align:justify;letter-spacing:.5px;"><span style="font-size:15px;"> </span></p><p style="white-space:normal;text-align:justify;letter-spacing:.5px;"><span style="font-size:15px;">提一句，NIO并不是严格意义上的非阻塞IO而应该属于多路复用IO，面试回答的时候要注意这个细节，讲到NIO会阻塞在Selector的select方法上会增加面试官对你的好感。</span></p><p style="white-space:normal;text-align:justify;letter-spacing:.5px;"><span style="font-size:15px;"> </span></p><p style="white-space:normal;text-align:justify;letter-spacing:.5px;"><span style="font-size:15px;">如果用过Netty，可能会问一些Netty的东西，毕竟这个框架基本属于当前最好的NIO框架了（Mina其实也不错，不过总体来说还是比不上Netty的），大多数互联网公司也都在用Netty。</span></p><p style="white-space:normal;text-align:justify;letter-spacing:.5px;"><span style="font-size:15px;"> </span></p><p style="white-space:normal;text-align:justify;letter-spacing:.5px;"><span style="font-size:15px;"><strong style="list-style:none;">　　6、JDK源码</strong></span></p><p style="white-space:normal;text-align:justify;letter-spacing:.5px;"><span style="font-size:15px;"> </span></p><p style="white-space:normal;text-align:justify;letter-spacing:.5px;"><span style="font-size:15px;">要想拿高工资，JDK源码不可不读。上面的内容可能还和具体场景联系起来，JDK源码就是实打实地看你平时是不是爱钻研了。我面试过程中被问了不少JDK源码的问题，其中最刁钻的一个问题——String的hashCode()方法是怎么实现的，幸好我平时String源代码看得多，答了个大概。JDK源码其实没什么好总结的，纯粹看个人，总结一下比较重要的源码：</span></p><p style="white-space:normal;text-align:justify;letter-spacing:.5px;"><span style="font-size:15px;"> </span></p><p style="white-space:normal;text-align:justify;letter-spacing:.5px;"><span style="font-size:15px;">　　List、Map、Set实现类的源代码</span></p><p style="white-space:normal;text-align:justify;letter-spacing:.5px;"><span style="font-size:15px;"> </span></p><p style="white-space:normal;text-align:justify;letter-spacing:.5px;"><span style="font-size:15px;">　　ReentrantLock、AQS的源代码</span></p><p style="white-space:normal;text-align:justify;letter-spacing:.5px;"><span style="font-size:15px;"> </span></p><p style="white-space:normal;text-align:justify;letter-spacing:.5px;"><span style="font-size:15px;">　　AtomicInteger的实现原理，主要能说清楚CAS机制并且AtomicInteger是如何利用CAS机制实现的</span></p><p style="white-space:normal;text-align:justify;letter-spacing:.5px;"><span style="font-size:15px;"> </span></p><p style="white-space:normal;text-align:justify;letter-spacing:.5px;"><span style="font-size:15px;">　　线程池的实现原理</span></p><p style="white-space:normal;text-align:justify;letter-spacing:.5px;"><span style="font-size:15px;"> </span></p><p style="white-space:normal;text-align:justify;letter-spacing:.5px;"><span style="font-size:15px;">　　Object类中的方法以及每个方法的作用</span></p><p style="white-space:normal;text-align:justify;letter-spacing:.5px;"><span style="font-size:15px;"> </span></p><p style="white-space:normal;text-align:justify;letter-spacing:.5px;"><span style="font-size:15px;">这些其实要求蛮高的，我去年一整年基本把JDK中重要类的源代码研究了个遍，真的花费时间、花费精力，当然回头看，是值得的----不仅仅是为了应付面试。</span></p><p style="white-space:normal;text-align:justify;letter-spacing:.5px;"><span style="font-size:15px;"> </span></p><p style="white-space:normal;text-align:justify;letter-spacing:.5px;"><span style="font-size:15px;"><strong style="list-style:none;">　　7、 框架</strong></span></p><p style="white-space:normal;text-align:justify;letter-spacing:.5px;"><span style="font-size:15px;"> </span></p><p style="white-space:normal;text-align:justify;letter-spacing:.5px;"><span style="font-size:15px;">老生常谈，面试必问的东西。一般来说会问你一下你们项目中使用的框架，然后给你一些场景问你用框架怎么做，比如我想要在spring初始化bean的时候做一些事情该怎么做、想要在bean销毁的时候做一些事情该怎么做、MyBatis中$和#的区别等等，这些都比较实际了，平时积累得好、有多学习框架的使用细节自然都不成问题。</span></p><p style="white-space:normal;text-align:justify;letter-spacing:.5px;"><span style="font-size:15px;"> </span></p><p style="white-space:normal;text-align:justify;letter-spacing:.5px;"><span style="font-size:15px;">如果上面你的问题答得好，面试官往往会深入地问一些框架的实现原理。问得最多的就是Spring AOP的实现原理，当然这个很简单啦，两句话就搞定的的事儿，即使你不会准备一下就好了。我遇到的最变态的是让我画一下Spring的Bean工厂实现的UML图，当然面对这样一个有深度的问题，我是绝对答不出来的......</span></p><p style="white-space:normal;text-align:justify;letter-spacing:.5px;"><span style="font-size:15px;"> </span></p><p style="white-space:normal;text-align:justify;letter-spacing:.5px;"><span style="font-size:15px;"><strong style="list-style:none;">　　8、数据库</strong></span></p><p style="white-space:normal;text-align:justify;letter-spacing:.5px;"><span style="font-size:15px;"> </span></p><p style="white-space:normal;text-align:justify;letter-spacing:.5px;"><span style="font-size:15px;">数据库十有八九也都会问到。一些基本的像union和union all的区别、left join、几种索引及其区别就不谈了，比较重要的就是数据库性能的优化，如果对于数据库的性能优化一窍不通，那么有时间，还是建议你在面试前花一两天专门把SQL基础和SQL优化的内容准备一下。</span></p><p style="white-space:normal;text-align:justify;letter-spacing:.5px;"><span style="font-size:15px;"> </span></p><p style="white-space:normal;text-align:justify;letter-spacing:.5px;"><span style="font-size:15px;">不过数据库倒是不用担心，一家公司往往有很多部门，如果你对数据库不熟悉而基本技术又非常好，九成都是会要你的，估计会先把你放到对数据库使用不是要求非常高的部门锻炼一下。</span></p><p style="white-space:normal;text-align:justify;letter-spacing:.5px;"><span style="font-size:15px;"> </span></p><p style="white-space:normal;text-align:justify;letter-spacing:.5px;"><span style="font-size:15px;"><strong style="list-style:none;">　　9、数据结构和算法分析</strong></span></p><p style="white-space:normal;text-align:justify;letter-spacing:.5px;"><span style="font-size:15px;"> </span></p><p style="white-space:normal;text-align:justify;letter-spacing:.5px;"><span style="font-size:15px;">数据结构和算法分析，对于一名程序员来说，会比不会好而且在工作中绝对能派上用场。数组、链表是基础，栈和队列深入一些但也不难，树挺重要的，比较重要的树AVL树、红黑树，可以不了解它们的具体实现，但是要知道什么是二叉查找树、什么是平衡树，AVL树和红黑树的区别。记得某次面试，某个面试官和我聊到了数据库的索引，他问我：</span></p><p style="white-space:normal;text-align:justify;letter-spacing:.5px;"><span style="font-size:15px;"> </span></p><p style="white-space:normal;text-align:justify;letter-spacing:.5px;"><span style="font-size:15px;">你知道索引使用的是哪种数据结构实现吗？</span></p><p style="white-space:normal;text-align:justify;letter-spacing:.5px;"><span style="font-size:15px;"> </span></p><p style="white-space:normal;text-align:justify;letter-spacing:.5px;"><span style="font-size:15px;">我答到用的Hash表吧，答错。他又问，你知道为什么要使用树吗？我答到因为Hash表可能会出现比较多的冲突，在千万甚至是上亿级别的数据面前，会大大增加查找的时间复杂度。而树比较稳定，基本保证最多二三十次就能找到想要的数据，对方说不完全对，最后我们还是交流了一下这个问题，我也明白了为什么要使用树，这里不说，大家觉得索引为什么要使用树来实现呢？</span></p><p style="white-space:normal;text-align:justify;letter-spacing:.5px;"><span style="font-size:15px;"> </span></p><p style="white-space:normal;text-align:justify;letter-spacing:.5px;"><span style="font-size:15px;">至于算法分析，不会、不想研究就算了，记得某次面试对方问我，Collections.sort方法使用的是哪种排序方法，额，吐血三升。当然为了显示我的博学，对算法分析也有一定的研究，我还是硬着头皮说了一句可能是冒泡排序吧。当然答案肯定不是，有兴趣的朋友可以去看一下Collections.sort方法的源代码，用的是一种叫做TimSort的排序法，也就是增强型的归并排序法。</span></p><p style="white-space:normal;text-align:justify;letter-spacing:.5px;"><span style="font-size:15px;"> </span></p><p style="white-space:normal;text-align:justify;letter-spacing:.5px;"><span style="font-size:15px;"><strong style="list-style:none;">　　10、 Java虚拟机</strong></span></p><p style="white-space:normal;text-align:justify;letter-spacing:.5px;"><span style="font-size:15px;"> </span></p><p style="white-space:normal;text-align:justify;letter-spacing:.5px;"><span style="font-size:15px;">出乎我意料，Java虚拟机应该是很重要的一块内容，结果在这几家公司中被问到的概率几乎为0。要知道，我去年可是花了大量的时间去研究Java虚拟机的，光周志明老师的《深入理解Java虚拟机：JVM高级特性与最佳实践》，就读了不下五遍。</span></p><p style="white-space:normal;text-align:justify;letter-spacing:.5px;"><span style="font-size:15px;"> </span></p><p style="white-space:normal;text-align:justify;letter-spacing:.5px;"><span style="font-size:15px;">言归正传，虽然Java虚拟机没问到，但我觉得还是有必要研究的，我就简单地列一个提纲吧，谈谈Java虚拟机中比较重要的内容：</span></p><p style="white-space:normal;text-align:justify;letter-spacing:.5px;"><span style="font-size:15px;"> </span></p><p style="white-space:normal;text-align:justify;letter-spacing:.5px;"><span style="font-size:15px;">　　Java虚拟机的内存布局</span></p><p style="white-space:normal;text-align:justify;letter-spacing:.5px;"><span style="font-size:15px;"> </span></p><p style="white-space:normal;text-align:justify;letter-spacing:.5px;"><span style="font-size:15px;">　　GC算法及几种垃圾收集器</span></p><p style="white-space:normal;text-align:justify;letter-spacing:.5px;"><span style="font-size:15px;"> </span></p><p style="white-space:normal;text-align:justify;letter-spacing:.5px;"><span style="font-size:15px;">　　类加载机制，也就是双亲委派模型</span></p><p style="white-space:normal;text-align:justify;letter-spacing:.5px;"><span style="font-size:15px;"> </span></p><p style="white-space:normal;text-align:justify;letter-spacing:.5px;"><span style="font-size:15px;">　　Java内存模型</span></p><p style="white-space:normal;text-align:justify;letter-spacing:.5px;"><span style="font-size:15px;"> </span></p><p style="white-space:normal;text-align:justify;letter-spacing:.5px;"><span style="font-size:15px;">　　happens-before规则</span></p><p style="white-space:normal;text-align:justify;letter-spacing:.5px;"><span style="font-size:15px;"> </span></p><p style="white-space:normal;text-align:justify;letter-spacing:.5px;"><span style="font-size:15px;">　　volatile关键字使用规则</span></p><p style="white-space:normal;text-align:justify;letter-spacing:.5px;"><span style="font-size:15px;"> </span></p><p style="white-space:normal;text-align:justify;letter-spacing:.5px;"><span style="font-size:15px;">也许面试无用，但在走向大牛的路上，不可不会。</span></p><p style="white-space:normal;text-align:justify;letter-spacing:.5px;"><span style="font-size:15px;"> </span></p><p style="white-space:normal;text-align:justify;letter-spacing:.5px;"><span style="font-size:15px;"><strong style="list-style:none;">　　11、Web方面的一些问题</strong></span></p><p style="white-space:normal;text-align:justify;letter-spacing:.5px;"><span style="font-size:15px;"> </span></p><p style="white-space:normal;text-align:justify;letter-spacing:.5px;"><span style="font-size:15px;">Java主要面向Web端，因此Web的一些问题也是必问的。我碰到过问得最多的两个问题是：</span></p><p style="white-space:normal;text-align:justify;letter-spacing:.5px;"><span style="font-size:15px;"> </span></p><p style="white-space:normal;text-align:justify;letter-spacing:.5px;"><span style="font-size:15px;">　　1.谈谈分布式Session的几种实现方式</span></p><p style="white-space:normal;text-align:justify;letter-spacing:.5px;"><span style="font-size:15px;"> </span></p><p style="white-space:normal;text-align:justify;letter-spacing:.5px;"><span style="font-size:15px;">常用的四种能答出来自然是让面试官非常满意的，另外一个常问的问题是：</span></p><p style="white-space:normal;text-align:justify;letter-spacing:.5px;"><span style="font-size:15px;"> </span></p><p style="white-space:normal;text-align:justify;letter-spacing:.5px;"><span style="font-size:15px;">　　2.讲一下Session和Cookie的区别和联系以及Session的实现原理</span></p><p style="white-space:normal;text-align:justify;letter-spacing:.5px;"><span style="font-size:15px;"> </span></p><p style="white-space:normal;text-align:justify;letter-spacing:.5px;"><span style="font-size:15px;">这两个问题之外，web.xml里面的内容是重点，Filter、Servlet、Listener，不说对它们的实现原理一清二楚吧，至少能对它们的使用知根知底。另外，一些细节的方面比如get/post的区别、forward/重定向的区别、HTTPS的实现原理也都可能会被考察到。</span></p><p style="white-space:normal;text-align:justify;letter-spacing:.5px;"><span style="font-size:15px;"> </span></p><p style="white-space:normal;text-align:justify;letter-spacing:.5px;"><span style="font-size:15px;">最后，如果有兴趣有时间，建议学习、研究一下SOA和RPC，面向服务体系，大型分布式架构必备，救命良方、包治百病、屡试不爽。</span></p><p style="letter-spacing:.5px;"><br /></p><p style="white-space:normal;text-align:center;"><span style="font-size:15px;">--- THE END ---</span></p><p style="white-space:normal;text-align:justify;letter-spacing:.5px;"><br /></p><p style="white-space:normal;text-align:center;"><strong style="font-size:18px;">最后，征个稿</strong></p><p style="white-space:normal;"><span style="font-size:15px;color:rgb(136,136,136);"></span></p><p style="white-space:normal;background-color:rgb(254,255,255);text-align:center;"><span style="font-size:15px;color:rgb(136,136,136);">你想与同行分享你的职场经验、人生困惑、</span><span style="color:rgb(136,136,136);font-size:15px;">生活趣闻或只是想单纯的吐槽同事和老板……吗？</span></p><p style="white-space:normal;background-color:rgb(254,255,255);text-align:center;"><span style="font-size:15px;color:rgb(136,136,136);">只要你有想表达的欲望，那就投稿给我们吧~</span></p><p style="text-align:justify;"><span style="font-size:15px;"><strong><span style="color:rgb(136,136,136);">征稿要求：</span></strong></span></p><p style="text-align:justify;"><span style="color:rgb(136,136,136);font-size:15px;">①稿件字数以800~1500字左右为宜，多于2000字的文章在手机上阅读起来比较麻烦，少于800字的文章看起来不过瘾；</span></p><p style="text-align:justify;"><span style="color:rgb(136,136,136);font-size:15px;">②你有自己拍的适合做文章插图的照片也可一并附上~如果不方便，程序和小七也会帮你配图~</span></p><p style="text-align:center;"><span style="color:rgb(136,136,136);font-size:15px;"><img class="img_loading __bg_gif" src="http://ss.csdn.net/p?https://mmbiz.qpic.cn/mmbiz_gif/1hReHaqafaevogUw562coqsiaGpRCnRZkryL5bpSYAlrJlKicUvIygYpShwIVLOUYZquBs2KLiaNEfPhRbt06hprg/0?wx_fmt=gif" alt="0?wx_fmt=gif" /></span></p><p><br /></p><p style="font-size:16px;white-space:normal;color:rgb(62,62,62);text-align:center;"><span style="color:rgb(136,136,136);font-size:15px;">加程序人生编辑们的微信，备注#投稿#：</span></p><p style="font-size:16px;white-space:normal;color:rgb(62,62,62);text-align:center;"><span style="color:rgb(136,136,136);font-size:15px;"><br /></span></p><p style="font-size:16px;white-space:normal;color:rgb(62,62,62);text-align:center;"><span style="color:rgb(136,136,136);font-size:15px;">程序 微信ID：druidlost  </span></p><p style="font-size:16px;white-space:normal;color:rgb(62,62,62);text-align:center;"><span style="color:rgb(136,136,136);font-size:15px;">小七 微信ID：duoshangshuang  </span></p><p style="font-size:16px;white-space:normal;color:rgb(62,62,62);text-align:center;"><span style="color:rgb(136,136,136);font-size:15px;"><br /></span></p><p style="font-size:16px;white-space:normal;color:rgb(62,62,62);background-color:rgb(254,255,255);text-align:center;"><span style="color:rgb(136,136,136);font-size:15px;">我们在这里期待着你的故事！</span></p><p style="white-space:normal;text-align:justify;letter-spacing:.5px;"><br /></p><p style="white-space:normal;text-align:center;letter-spacing:.5px;"><strong><strong>点击图片get往期内容</strong></strong></p><p style="white-space:normal;text-align:center;letter-spacing:.5px;"><strong><strong><a href="https://mp.weixin.qq.com/s?__biz=MzA5MzY4NTQwMA==&amp;mid=2651001334&amp;idx=1&amp;sn=0f3dfd0ec401ccd3affeca9d1000478f&amp;chksm=8bada201bcda2b170c5687e49f69470f07504543c4b3fc0bddf17e9daea5c535439f4e628064&amp;scene=21#wechat_redirect" style="white-space:normal;"><img class="img_loading" src="http://ss.csdn.net/p?https://mmbiz.qpic.cn/mmbiz_png/1hReHaqafacIcL0pL8LibTJZ5AiaJHMiaLQ6aT5z4TNbr0ad2DezuabAjkxaXcNuicNSDABc5zIKwIu2yR6qovlLsg/0?wx_fmt=png" alt="0?wx_fmt=png" /></a></strong></strong></p><p style="white-space:normal;"><a href="https://mp.weixin.qq.com/s?__biz=MzA5MzY4NTQwMA==&amp;mid=2651001331&amp;idx=1&amp;sn=f07d8bdf3c3a18a7587a2e3990476884&amp;chksm=8bada204bcda2b128ac687b8d8ce782908d212bcff755681db28bbc2bfbdb67235a3f01d34b1&amp;scene=21#wechat_redirect"><img class="img_loading" src="http://ss.csdn.net/p?https://mmbiz.qpic.cn/mmbiz_png/1hReHaqafadZefkxsiadicB0AQEXqsV4ueq6k8iaibDicKcuib8kCxIEpahRVskohYxAZ098HvTrQ2sNAwJGvkRLSdrg/0?wx_fmt=png" alt="0?wx_fmt=png" /></a></p><p style="white-space:normal;text-align:center;"><a href="https://mp.weixin.qq.com/s?__biz=MzA5MzY4NTQwMA==&amp;mid=2651001286&amp;idx=1&amp;sn=e63005264eb19eebb50f3bf382f3e9ac&amp;chksm=8bada231bcda2b274e9e1ccac6dc516e5bdc54104ffcdfd1349bab1b46d32f40c834243c8ae4&amp;scene=21#wechat_redirect"><img class="img_loading" style="visibility:visible !important;" src="http://ss.csdn.net/p?https://mmbiz.qpic.cn/mmbiz_png/1hReHaqafaerOd463prtf1AbbmqA1xJKicicaichz0pQ59Hf8sFMh43PicAtAkmkiaVicQWyibjAdRPxlrLtswOMlyU9Q/640?wx_fmt=png" alt="640?wx_fmt=png" /></a></p><p style="white-space:normal;"><img class="__bg_gif img_loading" width="100%" style="visibility:visible !important;" src="http://ss.csdn.net/p?https://mmbiz.qpic.cn/mmbiz_gif/1hReHaqafaerOd463prtf1AbbmqA1xJK50Rct0FxeaKJ2zv0qsYOPayG6g2YKnzLQ5gmI1nt9PUPib6qKOB5g8Q/0?wx_fmt=gif" alt="0?wx_fmt=gif" /></p>
                </div>
                      </div>
    </article>
      <div class="readall_box csdn-tracking-statistics tracking-click" data-mod="popu_376">
          <div class="read_more_mask"></div>
          <a class="btn btn-large btn-gray-fred read_more_btn" target="_self">阅读全文</a>
      </div>
      <div class="article_copyright">
              </div>
      <ul class="article_collect clearfix csdn-tracking-statistics tracking-click"  data-mod="popu_378">
          <li class="tit">本文已收录于以下专栏：</li>
<!--          [startarticlecolumns]-->
                                <!--          [endarticlecolumns]-->
      </ul>
      <div class="comment_box clearfix">
          <div id="comment_form">
              <div id="commentsbmitarear">
                              </div>
          </div>
      </div>
      <div class="comment_li_outbox">
          <div id="comment_list"></div>
      </div>

      <div class="more_comment">
          <div id="comment_bar" class="trackgin-ad" data-mod="popu_385"></div>
      </div>

      <h3 class="recommend_tit" id="related">相关文章推荐</h3>
      <div class="recommend_list clearfix" id="rasss">
                                                                                      <dl class="clearfix csdn-tracking-statistics" data-mod="popu_387" data-poputype="feed"  data-feed-show="false"  data-dsm="post">
                      <dd>
                          <h2><a href="http://blog.csdn.net/zwj1030711290/article/details/50960251"  target="_blank" strategy="BlogCommendFromCsdn_0">一名3年工作经验的程序员面试分享应该具备的技能</a></h2>
                          <div class="summary">
                              摘自：http://www.zuidaima.com/blog/2782300320549888.htm




面试感悟----一名3年工作经验的程序员应该具备的技能

前言

因...                          </div>
                          <ul>
                              <li class="avatar_img"><a href="http://blog.csdn.net/zwj1030711290" target="_blank" strategy="BlogCommendFromCsdn_0"><img src="http://avatar.csdn.net/5/D/D/3_zwj1030711290.jpg" alt="zwj1030711290" title="zwj1030711290"></a></li>
                              <li class="user_name"><a href="http://blog.csdn.net/zwj1030711290">zwj1030711290</a></li>
                              <li class="time">2016年03月23日 08:48</li>
                              <li class="visited_num"><i class="icon iconfont icon-read"></i><span>459</span></li>
                          </ul>
                      </dd>
                  </dl>
                                                                                                    <dl class="clearfix csdn-tracking-statistics" data-mod="popu_387" data-poputype="feed"  data-feed-show="false"  data-dsm="post">
                      <dd>
                          <h2><a href="http://blog.csdn.net/ardo_pass/article/details/78877998"  target="_blank" strategy="BlogCommendFromCsdn_1">一名3年工作经验的程序员应该具备的技能</a></h2>
                          <div class="summary">
                              关于程序员的几个阶段

每个程序员、或者说每个工作者都应该有自己的职业规划，如果看到这里的朋友没有自己的职业规划，希望你可以思考一下自己的将来。

LZ常常思考自己的未来，也从自己的思考中总结...                          </div>
                          <ul>
                              <li class="avatar_img"><a href="http://blog.csdn.net/ardo_pass" target="_blank" strategy="BlogCommendFromCsdn_1"><img src="http://avatar.csdn.net/7/6/3/3_ardo_pass.jpg" alt="ardo_pass" title="ardo_pass"></a></li>
                              <li class="user_name"><a href="http://blog.csdn.net/ardo_pass">ardo_pass</a></li>
                              <li class="time">2017年12月23日 07:46</li>
                              <li class="visited_num"><i class="icon iconfont icon-read"></i><span>83</span></li>
                          </ul>
                      </dd>
                  </dl>
                                                                                      <script>
                      (function() {
                          var s = "_" + Math.random().toString(36).slice(2);
                          document.write('<div id="' + s + '"></div>');
                          (window.slotbydup=window.slotbydup || []).push({
                              id: '4765209',
                              container: s,
                              size: '808,120',
                              display: 'inlay-fix'
                          });
                      })();
                  </script>
                                                                <dl class="clearfix csdn-tracking-statistics" data-mod="popu_387" data-poputype="feed"  data-feed-show="false"  data-dsm="post">
                      <dd>
                          <h2><a href="http://blog.csdn.net/u013322876/article/details/78423744"  target="_blank" strategy="BlogCommendFromCsdn_2">面试感悟：一名3年工作经验的程序员应该具备的技能</a></h2>
                          <div class="summary">
                              、

前言

因为和同事有约定再加上自己也喜欢做完一件事之后进行总结，因此有了这篇文章。这篇文章大部分内容都是面向整个程序员群体的，当然因为本身是做Java开发的，因此有一部分内容也是专门面向咱们Ja...                          </div>
                          <ul>
                              <li class="avatar_img"><a href="http://blog.csdn.net/u013322876" target="_blank" strategy="BlogCommendFromCsdn_2"><img src="http://avatar.csdn.net/5/C/1/3_u013322876.jpg" alt="u013322876" title="u013322876"></a></li>
                              <li class="user_name"><a href="http://blog.csdn.net/u013322876">u013322876</a></li>
                              <li class="time">2017年11月02日 12:59</li>
                              <li class="visited_num"><i class="icon iconfont icon-read"></i><span>412</span></li>
                          </ul>
                      </dd>
                  </dl>
                                                                                                    <dl class="clearfix csdn-tracking-statistics" data-mod="popu_387" data-poputype="feed"  data-feed-show="false"  data-dsm="post">
                      <dd>
                          <h2><a href="http://blog.csdn.net/js_sky/article/details/51035243"  target="_blank" strategy="BlogCommendFromCsdn_3">一名3年工作经验的程序员应该具备的技能</a></h2>
                          <div class="summary">
                              原文出处：http://www.cnblogs.com/xrq730/p/5260294.html

前言

因为和同事有约定再加上LZ自己也喜欢做完一件事之后进行总结，因此有了这篇文章。这篇文章大部...                          </div>
                          <ul>
                              <li class="avatar_img"><a href="http://blog.csdn.net/js_sky" target="_blank" strategy="BlogCommendFromCsdn_3"><img src="http://avatar.csdn.net/8/F/8/3_js_sky.jpg" alt="js_sky" title="js_sky"></a></li>
                              <li class="user_name"><a href="http://blog.csdn.net/js_sky">js_sky</a></li>
                              <li class="time">2016年04月01日 11:07</li>
                              <li class="visited_num"><i class="icon iconfont icon-read"></i><span>460</span></li>
                          </ul>
                      </dd>
                  </dl>
                                                                                                    <dl class="clearfix csdn-tracking-statistics" data-mod="popu_387" data-poputype="feed"  data-feed-show="false"  data-dsm="post">
                      <dd>
                          <h2><a href="http://blog.csdn.net/EGEFCXzo3Ha1x4/article/details/78764146"  target="_blank" strategy="BlogCommendFromCsdn_4">3年工作经验的程序员应该具备的技能</a></h2>
                          <div class="summary">
                              每个程序员、或者说每个工作者都应该有自己的职业规划，如果你不是富二代，不是官二代，也没有职业规划，希望你可以思考一下自己的将来。今天小编给大家分享的是一篇来自阿里Java工程师对3年工作经验程序员的职...                          </div>
                          <ul>
                              <li class="avatar_img"><a href="http://blog.csdn.net/EGEFCXzo3Ha1x4" target="_blank" strategy="BlogCommendFromCsdn_4"><img src="http://avatar.csdn.net/2/6/8/3_egefcxzo3ha1x4.jpg" alt="EGEFCXzo3Ha1x4" title="EGEFCXzo3Ha1x4"></a></li>
                              <li class="user_name"><a href="http://blog.csdn.net/EGEFCXzo3Ha1x4">EGEFCXzo3Ha1x4</a></li>
                              <li class="time">2017年12月09日 00:00</li>
                              <li class="visited_num"><i class="icon iconfont icon-read"></i><span>114</span></li>
                          </ul>
                      </dd>
                  </dl>
                                                                        <!-- 广告位：PC端-博客详情通栏7（feed流）-808*120 -->
                  <script>
                      (function() {
                          var s = "_" + Math.random().toString(36).slice(2);
                          document.write('<div id="' + s + '"></div>');
                          (window.slotbydup=window.slotbydup || []).push({
                              id: '4983339',
                              container: s,
                              size: '808,120',
                              display: 'inlay-fix'
                          });
                      })();
                  </script>
                                                                              <dl class="clearfix csdn-tracking-statistics" data-mod="popu_387" data-poputype="feed"  data-feed-show="false"  data-dsm="post">
                      <dd>
                          <h2><a href="http://blog.csdn.net/sinat_19628145/article/details/50991735"  target="_blank" strategy="BlogCommendFromCsdn_5">面试感悟----一名3年工作经验的程序员应该具备的技能</a></h2>
                          <div class="summary">
                              原文地址http://www.cnblogs.com/xrq730/p/5260294.html，转载请注明出处，谢谢！

 
前言
因为和同事有约定再加上LZ自己也喜欢做完一件事之后进行总结...                          </div>
                          <ul>
                              <li class="avatar_img"><a href="http://blog.csdn.net/sinat_19628145" target="_blank" strategy="BlogCommendFromCsdn_5"><img src="http://avatar.csdn.net/6/3/E/3_sinat_19628145.jpg" alt="sinat_19628145" title="sinat_19628145"></a></li>
                              <li class="user_name"><a href="http://blog.csdn.net/sinat_19628145">sinat_19628145</a></li>
                              <li class="time">2016年03月27日 14:51</li>
                              <li class="visited_num"><i class="icon iconfont icon-read"></i><span>284</span></li>
                          </ul>
                      </dd>
                  </dl>
                                                                                                    <dl class="clearfix csdn-tracking-statistics" data-mod="popu_387" data-poputype="feed"  data-feed-show="false"  data-dsm="post">
                      <dd>
                          <h2><a href="http://blog.csdn.net/u010146373/article/details/70599108"  target="_blank" strategy="BlogCommendFromCsdn_6">面试感悟----一名3年工作经验的程序员应该具备的技能</a></h2>
                          <div class="summary">
                              原文地址http://www.cnblogs.com/xrq730/p/5260294.html，转载请注明出处，谢谢！前言因为和同事有约定再加上LZ自己也喜欢做完一件事之后进行总结，因此有了这篇文章...                          </div>
                          <ul>
                              <li class="avatar_img"><a href="http://blog.csdn.net/u010146373" target="_blank" strategy="BlogCommendFromCsdn_6"><img src="http://avatar.csdn.net/C/7/1/3_u010146373.jpg" alt="u010146373" title="u010146373"></a></li>
                              <li class="user_name"><a href="http://blog.csdn.net/u010146373">u010146373</a></li>
                              <li class="time">2017年04月24日 16:21</li>
                              <li class="visited_num"><i class="icon iconfont icon-read"></i><span>87</span></li>
                          </ul>
                      </dd>
                  </dl>
                                                                                                    <dl class="clearfix csdn-tracking-statistics" data-mod="popu_387" data-poputype="feed"  data-feed-show="false"  data-dsm="post">
                      <dd>
                          <h2><a href="http://blog.csdn.net/qq_36230361/article/details/61630663"  target="_blank" strategy="BlogCommendFromCsdn_7">面试感悟----一名3年工作经验的程序员应该具备的技能</a></h2>
                          <div class="summary">
                              原文地址http://www.cnblogs.com/xrq730/p/5260294.html，转载请注明出处，谢谢！


 

前言

因为和同事有约定再加上LZ自己也喜欢做完一件事...                          </div>
                          <ul>
                              <li class="avatar_img"><a href="http://blog.csdn.net/qq_36230361" target="_blank" strategy="BlogCommendFromCsdn_7"><img src="http://avatar.csdn.net/9/7/0/3_qq_36230361.jpg" alt="qq_36230361" title="qq_36230361"></a></li>
                              <li class="user_name"><a href="http://blog.csdn.net/qq_36230361">qq_36230361</a></li>
                              <li class="time">2017年03月12日 20:16</li>
                              <li class="visited_num"><i class="icon iconfont icon-read"></i><span>135</span></li>
                          </ul>
                      </dd>
                  </dl>
                                                                                                    <dl class="clearfix csdn-tracking-statistics" data-mod="popu_387" data-poputype="feed"  data-feed-show="false"  data-dsm="post">
                      <dd>
                          <h2><a href="http://blog.csdn.net/zhujiangtaotaise/article/details/56006800"  target="_blank" strategy="BlogCommendFromCsdn_8">面试感悟---一名3年工作经验的程序员应该具备的技能</a></h2>
                          <div class="summary">
                              前言因为和同事有约定再加上LZ自己也喜欢做完一件事之后进行总结，因此有了这篇文章。这篇文章大部分内容都是面向整个程序员群体的，当然因为LZ本身是做Java开发的，因此有一部分内容也是专门面向咱们Jav...                          </div>
                          <ul>
                              <li class="avatar_img"><a href="http://blog.csdn.net/zhujiangtaotaise" target="_blank" strategy="BlogCommendFromCsdn_8"><img src="http://avatar.csdn.net/F/3/0/3_zhujiangtaotaise.jpg" alt="zhujiangtaotaise" title="zhujiangtaotaise"></a></li>
                              <li class="user_name"><a href="http://blog.csdn.net/zhujiangtaotaise">zhujiangtaotaise</a></li>
                              <li class="time">2017年02月20日 09:49</li>
                              <li class="visited_num"><i class="icon iconfont icon-read"></i><span>390</span></li>
                          </ul>
                      </dd>
                  </dl>
                                                                                                    <dl class="clearfix csdn-tracking-statistics" data-mod="popu_387" data-poputype="feed"  data-feed-show="false"  data-dsm="post">
                      <dd>
                          <h2><a href="http://blog.csdn.net/u010321471/article/details/78650698"  target="_blank" strategy="BlogCommendFromCsdn_9">一名3年工作经验的程序员应该具备的技能</a></h2>
                          <div class="summary">
                              前言本文来自醉馬当前闯的投稿，他的博客： 
http://www.jianshu.com/u/17ad9a3118f4 
因为和同事有约定再加上自己也喜欢做完一件事之后进行总结，因此有了这篇文章。这篇...                          </div>
                          <ul>
                              <li class="avatar_img"><a href="http://blog.csdn.net/u010321471" target="_blank" strategy="BlogCommendFromCsdn_9"><img src="http://avatar.csdn.net/B/5/1/3_u010321471.jpg" alt="u010321471" title="u010321471"></a></li>
                              <li class="user_name"><a href="http://blog.csdn.net/u010321471">u010321471</a></li>
                              <li class="time">2017年11月28日 00:02</li>
                              <li class="visited_num"><i class="icon iconfont icon-read"></i><span>1776</span></li>
                          </ul>
                      </dd>
                  </dl>
                                                    </div>
  </main>
<aside>
  <div class="right_box user_info">
      <dl class="inf_bar clearfix">
          <dt class="csdn-tracking-statistics tracking-click" data-mod="popu_381">
              <a href="http://blog.csdn.net/csdnsevenn" target="_blank">
                  <img src="http://avatar.csdn.net/8/6/A/3_csdnsevenn.jpg" class="avatar_pic">
              </a>
              <span class="medals" title="">
                  </span>
          </dt>
          <dd>
              <h3 class="csdn-tracking-statistics tracking-click"  data-mod="popu_380"><a href="http://blog.csdn.net/csdnsevenn" target="_blank" id="uid">csdnsevenn</a></h3>
              <span  class="csdn-tracking-statistics tracking-click" data-mod="popu_379"><a class="btn btn-redborder-small "  id="span_add_follow" target="_self">＋关注</a></span>
          </dd>
      </dl>
      <div class="inf_number_box clearfix">
          <dl>
              <dt>原创</dt>
              <dd>93</dd>
          </dl>
          <dl>
              <dt>粉丝</dt>
              <dd id='fan'>63</dd>
          </dl>
          <dl>
              <dt>喜欢</dt>
              <dd>85</dd>
          </dl>
          <dl>
        <dt>码云</dt>
        <dd>&nbsp;</dd>
      </dl>

      </div>
  <div class="writings">
        <div class="public_signal clearfix">
          <h3>他的最新文章</h3>
          <a href="http://blog.csdn.net/csdnsevenn" target="_blank" class="more"><span>更多文章</span></a>
        </div>
          <ul class="inf_list clearfix csdn-tracking-statistics tracking-click" data-mod="popu_382">
                            <li class="clearfix">
                  <a href="http://blog.csdn.net/csdnsevenn/article/details/78883832" target="_blank">拿好不谢！程序员圣诞节的脱单秘籍</a>
              </li>
                            <li class="clearfix">
                  <a href="http://blog.csdn.net/csdnsevenn/article/details/78883831" target="_blank">40、50、60--说说我那些超龄的程序员同事们</a>
              </li>
                            <li class="clearfix">
                  <a href="http://blog.csdn.net/csdnsevenn/article/details/78878678" target="_blank">比特币是不是庞氏骗局？</a>
              </li>
                            <li class="clearfix">
                  <a href="http://blog.csdn.net/csdnsevenn/article/details/78878674" target="_blank">百度起诉前高管：景驰科技创始人王劲 索赔5000万！</a>
              </li>
                            <li class="clearfix">
                  <a href="http://blog.csdn.net/csdnsevenn/article/details/78876695" target="_blank">一周IT歪评丨清北BAT落户雄安新区/刘强东穿9块钱大裤衩/青少年沉迷王者日本称不惧怕中国</a>
              </li>
                        </ul>
      </div>
  </div>
    <div class="user-hotArticle">
        <h3><a href="#related" >相关推荐</a></h3>
        <ul class="hotArticle-list csdn-tracking-statistics tracking-click" data-mod="popu_563">
<!--           [StartRelatedArticles]-->
                                                <li>
                        <a href="http://blog.csdn.net/zwj1030711290/article/details/50960251" target="_blank" strategy="BlogRightReleated_0">一名3年工作经验的程序员面试分享应该具备的技能</a>
                                            </li>
                                    <li>
                        <a href="http://blog.csdn.net/ardo_pass/article/details/78877998" target="_blank" strategy="BlogRightReleated_1">一名3年工作经验的程序员应该具备的技能</a>
                                            </li>
                                    <li>
                        <a href="http://blog.csdn.net/u013322876/article/details/78423744" target="_blank" strategy="BlogRightReleated_2">面试感悟：一名3年工作经验的程序员应该具备的技能</a>
                                            </li>
                                    <li>
                        <a href="http://blog.csdn.net/js_sky/article/details/51035243" target="_blank" strategy="BlogRightReleated_3">一名3年工作经验的程序员应该具备的技能</a>
                                            </li>
                            <!--            [EndRelatedArticles]-->
        </ul>
    </div>
  <div class="extension_other csdn-tracking-statistics tracking-click" data-mod="popu_389">
     <!--u3032528-->
    <div class="flashrecommend">
        <script type="text/javascript" src="http://mpb1.iteye.com/bwocoltlyzdec.js"></script>
    </div>
  </div>

<!--    [StartShowSelfColumn]-->
    <!--    [EndShowSelfColumn]-->
    <div class="fixRight">
        <!-- 广告位：PC端-博客详情右侧视窗2（feed流）-300*300 -->
        <script>
            (function() {
                var s = "_" + Math.random().toString(36).slice(2);
                document.write('<div id="' + s + '"></div>');
                (window.slotbydup=window.slotbydup || []).push({
                    id: '5384130',
                    container: s,
                    size: '300,300',
                    display: 'inlay-fix'
                });
            })();
        </script>
        <div class="extension_other csdn-tracking-statistics tracking-click bottomRcom" data-mod="popu_389" style="position:absolute;z-index:-5;opacity:0;pointer-events:none">
            <!--u3032528-->
            <div class="flashrecommend">
                <!-- 请置于所有广告位代码之前 -->
                <script src="http://dup.baidustatic.com/js/dm.js"></script>

                <!-- 广告位：PC端-博客详情页右侧视窗1（feed流）-300*250 -->
                <script>
                    (function() {
                        var s = "_" + Math.random().toString(36).slice(2);
                        document.write('<div id="' + s + '"></div>');
                        (window.slotbydup=window.slotbydup || []).push({
                            id: '4770930',
                            container: s,
                            size: '300,250',
                            display: 'inlay-fix'
                        });
                    })();
                </script>
            </div>
        </div>

    </div>
    <div class="user-hotArticle">
        <h3>他的热门文章</h3>
        <ul class="hotArticle-list csdn-tracking-statistics tracking-click" data-mod="popu_521">
<!--            [StartHotArticles]-->
                                                <li>
                        <a href="http://blog.csdn.net/csdnsevenn/article/details/78713363">写给身为程序员的一些话（非鸡汤，只是一些发自内心的话）</a>
                        <div class="read list-left"><i class="icon iconfont icon-read"></i><span>2332</span></div>
                    </li>
                                    <li>
                        <a href="http://blog.csdn.net/csdnsevenn/article/details/78301537">一个32岁入门的70后程序员给我的启示</a>
                        <div class="read list-left"><i class="icon iconfont icon-read"></i><span>2168</span></div>
                    </li>
                                    <li>
                        <a href="http://blog.csdn.net/csdnsevenn/article/details/78497180">腾讯面试官送给准程序员的一些建议！</a>
                        <div class="read list-left"><i class="icon iconfont icon-read"></i><span>1758</span></div>
                    </li>
                                    <li>
                        <a href="http://blog.csdn.net/csdnsevenn/article/details/78744725">代码传奇 | 身价10亿的程序员 雷军当年也为他打工——WPS之父 求伯君</a>
                        <div class="read list-left"><i class="icon iconfont icon-read"></i><span>1748</span></div>
                    </li>
                                    <li>
                        <a href="http://blog.csdn.net/csdnsevenn/article/details/78733972">身为编程大牛的你摆放桌面文件也要有个性，与众不同</a>
                        <div class="read list-left"><i class="icon iconfont icon-read"></i><span>1599</span></div>
                    </li>
                            <!--            [EndHotArticles]-->
        </ul>
    </div>
<!--    [startcustom]-->
    <!--    [endcustom]-->
</aside></div>

<div class="left_fixed">
    <div class="left_show_button">
        <span>
          <i class="icon iconfont icon-youjiantou"></i>
        </span>
    </div>
    <ul class="left_menu">
        <li>
            <button class="left-fixed-btn btn-like csdn-tracking-statistics tracking-click" data-mod="popu_373" target="_self">
                <a href="javascript:void(0);" class="iconbox border_red"><i class="icon iconfont icon-dianzan"></i></a>
                <a class="txt" href="javascript:void(0);">1</a>
            </button>
        </li>
        <li id="blog_artical_directory">
            <button class="left-fixed-btn left_menu_btn csdn-tracking-statistics tracking-click" data-mod="popu_372" target="_self">
                <a href="javascript:void(0);" class="iconbox border_black"><i class="icon iconfont icon-mulu"></i></a>
            </button>
        </li>
        <li class="menu_con">
            <div class="list_father">
                <div class="arr_box">
                    <button class="btn-noborder arr-btn scroll-down  left_scroll_down"><i class="icon iconfont icon-xiajiantou"></i></button>
                    <button class="btn-noborder arr-btn scroll-up left_scroll_top"><i class="icon iconfont icon-shangjiantou"></i></button>
                </div>
                <div class="arr"></div>
                <div id="csdnBlogDir"></div>
            </div>
        </li>
        <!--        <li>-->
        <!--            <button class="left-fixed-btn btn-like tracking-ad" data-mod="popu_373" target="_self">-->
        <!--                <span class="iconbox border_red"><i class="icon iconfont icon-xihuan-"></i></span>-->
        <!--                <span class="txt">喜欢</span>-->
        <!--                <span class="untxt">取消喜欢</span>-->
        <!--            </button>-->
        <!--        </li>-->
        <li>
            <button class="left-fixed-btn csdn-tracking-statistics tracking-click" data-mod="popu_374"  id="com-quick-collect" target="_self">
                <a href="javascript:void(0);" class="iconbox border_purple"><i class="icon iconfont icon-shoucang"></i></a>
            </button>
        </li>
        <li>
            <button class="left-fixed-btn btn-pinglun csdn-tracking-statistics tracking-click" data-mod="popu_544" >
                <a href="javascript:void(0);" class="iconbox border_purple"><i class="icon iconfont icon-pinglun"></i></a>
            </button>
        </li>
        <li id="share_box">
            <button class="left-fixed-btn  csdn-tracking-statistics tracking-click"  data-mod="popu_375" target="_self">
                <a href="javascript:void(0);" class="iconbox border_orange"><i class="icon iconfont icon-fenxiang"></i></a>
            </button>
            <div class="bdsharebuttonbox csdn-tracking-statistics tracking-click" data-mod="popu_172">
                <div class="outside">
                    <span class="iconbox border_red2"><i class="icon iconfont icon-xinlang"></i></span>
                    <a href="#" class="bds_tsina" data-cmd="tsina" title="分享到新浪微博"> </a>
                </div>
                <div class="outside">
                    <span class="iconbox border_green"><i class="icon iconfont icon-weixin"></i></span>
                    <a href="#" class="bds_weixin" data-cmd="weixin" title="分享到微信"> </a>
                </div>
                <div class="outside">
                    <span class="iconbox border_blue"><i class="icon iconfont icon-QQ"></i></span>
                    <a href="#" class="bds_qzone" data-cmd="qzone" title="分享到QQ空间"> </a>
                </div>
            </div>
        </li>
    </ul>
</div>
<div class="right_fixed">
    <div class="r_ico">
        <i class="icon iconfont icon-jubao"></i>
        <span class="txt" id="reportBtn">内容举报</span>
    </div>
    <div class="returnTop">
        <i class="icon iconfont icon-fanhuidingbu"></i>
        <span>返回顶部</span>
    </div>
</div>
<div id="pop_win"></div>
<div id="popup_mask"></div>
<div class="pop_CA_cover" ></div>
<div class="pop pop_CA" >
    <div class="CA_header">
        收藏助手
        <span class="cancel_icon"  id="fapancle" ></span>
    </div>
    <iframe src="" id="collectIframe" frameborder="0" width="100%" height="360"  scrolling="no" ></iframe>
</div>
<!--举报-->
<div id="report_dialog" style="top: 250px; left: 343.5px;"><div id="panel_report">
    <div class="panel_head">不良信息举报</div>
    <form method="post" id="frmReport" class="panel_body">
        <table border="0" cellpadding="0" cellspacing="4" class="pop_table">
            <tbody><tr><td colspan="2">您举报文章：<a href="http://blog.csdn.net/csdnsevenn/article/details/78904928" target="_blank">阿里Java工程师分享3年工作经验的程序员应该具备的技能</a></td></tr>
            <tr>
                <th style="width:60px;">举报原因：</th>
                <td id="panel_reporttype">
                    <label><input type="radio" class="report_type" id="report_sex" name="report_type" value="1">色情</label>
                    <label><input type="radio" class="report_type" id="report_Politics" name="report_type" value="2">政治</label>
                    <label><input type="radio" class="report_type" id="report_copy" name="report_type" value="3">抄袭</label>
                    <label><input type="radio" class="report_type" id="report_ad" name="report_type" value="4">广告</label>
                    <label><input type="radio" class="report_type" id="report_want" name="report_type" value="5">招聘</label>
                    <label><input type="radio" class="report_type" id="report_call" name="report_type" value="6">骂人</label>
                    <br>
                    <label><input type="radio" class="report_type" id="report_other" name="report_type" value="7">其他</label>
                    <input type="text" name="report_other_content" id="report_other_content" maxlength="30" style="display: none;">
                </td>
            </tr>
            <tr id="panel_originalurl" style="display: none;">
                <th>原文地址：</th>
                <td>
                    <input id="originalurl" value="http://" name="originalurl" type="text" style="width: 90%;">
                </td>
            </tr>
            <tr>
                <th id="sp_reason">原因补充：</th>
                <td>
                    <textarea id="report_description" style="width: 300px;" rows="3" name="report_description"></textarea>
                    <p id="sp_n" style="color:#999;margin:0px;padding:0px;">(最多只允许输入30个字)</p>
                </td>
            </tr>
            <tr>
                <td></td>
                <td>
                    <input id="btnSubmitReport" name="submit" type="image" align="middle" class="btn_1" src="http://csdnimg.cn/release/phoenix/images/btn_submit.jpg">
                    <span style="padding-left:20px;"></span>
                    <img id="btnCloseReportDialog" src="http://csdnimg.cn/release/phoenix/images/btn_cancel.jpg" align="middle">
                    <div id="error" style="color: Red">
                    </div>
                </td>
            </tr>
            </tbody></table>
    </form>
</div>
    <script language="javascript" type="text/javascript">
        var isComment=0;
        //显示隐藏地址
        $(function () {
          console.log("version:phoenix");
            if(isComment){
                $("#report_description").attr("disabled",true);
                $("#sp_n").hide();
                $("#sp_reason").html("评论内容：");
            }
            $(".report_type").click(function () {
                $("#panel_originalurl,#report_other_content").hide();
                switch ($(this).val()) {
                    case '3':
                        $("#panel_originalurl").show();
                        $("#originalurl").focus();
                        break;
                    case '7':
                        if(isComment){
                            $("#report_other_content").show().focus();
                        }
                        break;
                }

            });

            $("#frmReport").submit(function () {
                if (!currentUserName) {

                    if (confirm("您的操作必须登录，是否登录？")) {
                        location.href = "http://passport.csdn.net/account/login?from=" + encodeURIComponent(location.href);
                        return false;
                    }
                    return false;
                }

                var reportType = $("input[name=report_type]:checked").val();
                if(!reportType){
                    alert("请选择举报原因！");
                    return false;
                }
                var otherInfo = "";
                switch (reportType) {
                    case '3':
                        otherInfo = $("#originalurl").val();
                        if (otherInfo == ""||otherInfo=="http://") {
                            alert("举报抄袭必须提供原创文章地址！");
                            $("#originalurl").focus();
                            return false;
                        } else if(!checkeURL(otherInfo)) {
                            alert("请输入正确的原创文章地址！");
                            $("#originalurl").focus();
                            return false;
                        }
                        break;
                    case '7':
                        otherInfo = $("#report_other_content").val();
                        if (isComment && !otherInfo) {
                            alert("请填写举报的具体原因！");
                            $("#report_other_content").focus();
                            return false;
                        }
                        if(!isComment){
                            if(!$("#report_description").val()){
                                alert("请填写举报的具体原因！");
                                $("#report_description").focus();
                                return false;
                            }
                        }
                        break;
                }
                if(!isComment){
                    if($("#report_description").val().length>30){
                        alert("举报原因最多只允许输入30个字！");
                        return false;
                    }
                }
	            nowTime = {
		            year: new Date().getFullYear(),
		            month: parseInt(new Date().getMonth())+1,
		            day: new Date().getDate(),
		            hours: parseInt(new Date().getHours())+1,
		            minutes: parseInt(new Date().getMinutes())+1,
		            seconds: parseInt(new Date().getSeconds())+1
	            };
	            var data = {
		            articleId: fileName,
		            commentId: 0,
		            reportType: reportType,
		            originalurl: $("#originalurl").val(),
		            report_other_content: $("#report_other_content").val(),
		            report_description: $("#report_description").val(),
		            currentUserName: currentUserName,
		            updatetime: nowTime.year+'/'+nowTime.month+'/'+nowTime.day+' '+ nowTime.hours+':'+nowTime.minutes+':'+seconds,
		            blogUser: username
	            };
	            if(!isComment){//如果是举报文章
		            data.report_other_content = data.report_description;
		            // data.report_description = "1. 神经网络这是一个常见的神经网络的图：这是一个常见的三层神经网络的基本构成，Layer L1是输入层，Layer L2是隐含层";
	            }

	            $.post(blog_address + "/common/report?id="+fileName+"&t=2", data, function (data) {
		            if (data.result == 1){
			            SetError("感谢您的举报，我们会尽快审核！");
		            }else{
			            if (data.content) alert(data.content);
		            }

	            });
                return false;
            });

            $("#btnCloseReportDialog").click(function () {
                CloseDiv();
            });

        });

        //提示后关闭方法
        function SetError(error) {
            $("#btnCloseReportDialog").trigger("click");
            alert(error);
            CloseDiv();
        }

        //关闭方法
        function CloseDiv() {

            $.removeMask();
            $("#report_dialog").hide();
            return false;
        }

        //验证url
        function checkeURL(url){
            return /^http(s)?:\/\/([\w-]+\.)+[\w-]+/i.test(url);
        }
    </script>
</div>
<!--  fixme 后期清理掉  -->
<div id="a52b5334d" style="width: 1px; height: 1px; display: none;">
    <script id="adJs52b5334"></script>
    <script>document.getElementById("adJs52b5334").src = "http://ads.csdn.net/js/opt/52b5334.js?t=" + Math.random();</script>
</div>
<script src="http://c.csdnimg.cn/public/common/libs/bootstrap/js/bootstrap.min.js" type="text/javascript"></script>
<script type="text/javascript" src="http://csdnimg.cn/release/phoenix/bower-libs/MathJax/MathJax.js?config=TeX-AMS_HTML"></script>
<!-- <script type="text/javascript" src="http://passport.csdn.net/content/loginbox/login.js"></script> -->
<script>window._bd_share_config = { "common": { "bdSnsKey": {}, "bdText": "", "bdMini": "1", "bdMiniList": false, "bdPic": "", "bdStyle": "0", "bdSize": "16" }, "share": {} }; with (document) 0[(getElementsByTagName('head')[0] || body).appendChild(createElement('script')).src = 'http://bdimg.share.baidu.com/static/api/js/share.js?v=89860593.js?cdnversion=' + ~(-new Date() / 36e5)];</script>
<script type="text/javascript" >
    if($(".article_collect li").length==1){$(".article_collect").hide();}
    if($(".article_tags li").length==1){$(".article_tags").hide();}
    $(".edit a").attr("href","http://write.blog.csdn.net/postedit/"+fileName);
    $.each($(".edu_li a"),function(){$(this).attr("href",$(this).attr("href").replace("blog7","blog9"))});
    new CNick('#uid').showNickname();

    if($("#fan").html()=="")
    {
	    $("#fan").html(0);
    }
</script>
<script src="http://c.csdnimg.cn/public/common/append_mark/appendMark.min.js?v=5.00.43" type="text/javascript"></script>
<script type="text/javascript">
    appendMark($('.recommend_list').children('a').find('dt'),$('.extension_other'))
</script>
<div class=""id="loginWrap"></div>
<div class="" id="dlMask"></div>
</body>
